package com.logica.mdm.webservices;

import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.ParameterStyle;

import com.logica.mdm.webservices.messages.CleansePutCrmAccountCompositeRequest;
import com.logica.mdm.webservices.messages.CleansePutCrmAccountCompositeResponse;
import com.logica.mdm.webservices.messages.CleansePutCrmContactCompositeRequest;
import com.logica.mdm.webservices.messages.CleansePutCrmContactCompositeResponse;

/**
 * Composite MDM Web Service for Nexity.
 * @author Fabien Crespel <fabien.crespel@logica.com>
 */
@WebService
public interface NexityCompositeService {
	
	/**
	 * Cleanse and insert a CRM Contact object in the MDM database.
	 * @param cleansePutCrmContactCompositeRequest the request input
	 * @return response containing a message and a list of individual CleansePut responses
	 */
	@SOAPBinding(parameterStyle=ParameterStyle.BARE)
	CleansePutCrmContactCompositeResponse cleansePutCrmContact(CleansePutCrmContactCompositeRequest cleansePutCrmContactCompositeRequest);
	
	/**
	 * Cleanse and insert a CRM Account object in the MDM database.
	 * @param cleansePutCrmAccountCompositeRequest the request input
	 * @return response containing a message and a list of individual CleansePut responses
	 */
	@SOAPBinding(parameterStyle=ParameterStyle.BARE)
	CleansePutCrmAccountCompositeResponse cleansePutCrmAccount(CleansePutCrmAccountCompositeRequest cleansePutCrmAccountCompositeRequest);
}
